from django.shortcuts import render
from rest_framework import viewsets  # 导入视图集
from rest_framework.decorators import action
from rest_framework.response import Response  # 导入页面使用的响应
from .serializers import StudentSerializer, ClassesSerializer  # 导入序列化器
from .models import Student, Classes  # 导入模型类
from rest_framework.status import HTTP_404_NOT_FOUND, HTTP_204_NO_CONTENT

# Create your views here.
'''
视图集
list 查询全部  create 增加 retrieve 查询单条 update 修改 destroy 删除  
'''


# 定义一个视图集
class StudentViewSet(viewsets.ModelViewSet):
    # all展示所有数据，但逻辑删除的不会显示可能还会报错
    queryset = Student.objects.filter(is_delete=False)  # 定义视图集使用的查询集queryset
    serializer_class = StudentSerializer  # 视图集使用的序列化器类


class ClassesViewSet(viewsets.ModelViewSet):
    queryset = Classes.objects.filter(is_delete=False)
    serializer_class = ClassesSerializer

    # 查询班级最后一条数据,当前不需要传输任何数据
    @action(methods=['get'], detail=False)
    def last(self, request):
        # 查询出班级最后一条数据
        classes = Classes.objects.last()
        # 将查询出来的模型对象转化为json的数据格式，然后进行返回
        return Response(self.get_serializer(classes).data)
